home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / c / bc_pas_1.zip / TECHNOTE.DOC < prev    next >
Text File  |  1992-07-21  |  4KB  |  96 lines

  1.  
  2.  
  3.         ----=====================================================----
  4.     ----====< This file contains additional programming >====----
  5.     ----====< information for the Pro Audio Spectrum.   >====----
  6.     ----=====================================================----
  7.  
  8.  
  9.     Programming PCM stuff... (For the Original Pro Audio Spectrum)
  10.  
  11.            A few considerations when programming the 8253 timer chip.
  12.  
  13.         1. When programming timer 0 (sample rate timer), and
  14.            timer 1 (sample buffer count), remember to first
  15.            program the shadowed timer control register (138Bh)
  16.            to set up the timer mode. This was not well documented
  17.            in the early versions of the developers kit manual.
  18.  
  19.         2. A speed related problem has been reported when
  20.            programming the 8253 timers. A period of time must
  21.            elapse between programming the shadowed timer control
  22.            register, and the actual timers. This should be
  23.            minimally 2 micro seconds. The best approach is to
  24.            perform an OUT instruction, then a couple IN
  25.            instructions. The I/O instructions will slow all
  26.            processors down to the 8 mhz rate; thereby, forcing
  27.            proper timing on all AT class machines.
  28.  
  29.         3. A special note about the sample buffer counter. Normal
  30.            PCM record and playback uses mode 2 of the 8253 timer.
  31.            This mode only accepts values from 2 through ffff+1 (or
  32.            zero for 64k). A value of 1 will not generate the
  33.            expected end of buffer interrupt.
  34.  
  35.         4. The description of the sample rate and sample buffer
  36.            mask bit in the developers manual, is not clear. These
  37.            bits are the enable gates that allow the timers to run.
  38.            These bits are set to enable the timers, not to disable
  39.            them.
  40.  
  41.     New programming considerations for support the Pro Audio
  42.     Spectrum products based upon the MV101 ASIC.
  43.  
  44.         Changes to the 8253 timer chip.
  45.  
  46.         The MV101 ASIC emulates the 8253 timer chip, with
  47.         a couple changes. Timer 0 is only an 8 bit value.
  48.         When programming the timer for 16 bits, the high
  49.         order byte will be ignored.
  50.  
  51.         Timer 1 functionality has been modified. The timer
  52.         works the same for 8 and 16 bit PCM on 8 bit DMA
  53.         channels, but changes slightly for the 16 bit DMA
  54.         channels. The count needs to be divided by 2 when
  55.         programming the timer for use on a 16 bit channel.
  56.  
  57.         Single Shot DMA PCM transfers.
  58.  
  59.         When performing DMA transfers, and NOT using the
  60.         auto-initialize DMA mode, one special step should
  61.         be performed at IRQ time. Upon receiving a Sample
  62.         Buffer Count interrupt (buffer complete IRQ), turn
  63.         off the PCMEnable bit in the cross channel register.
  64.         Once the DMA is programmned for the next block,
  65.         and timer 1 reprogrammed for the new block length,
  66.         the PCMEnable bit can be turned back on.
  67.  
  68.         DMA & IRQ channel support.
  69.  
  70.         The Pro Audio spectrum product line, based upon the
  71.         MV101 ASIC, supports the high order DMA and IRQs
  72.         of the AT class machines. Please add support for
  73.         these channels. Example code can be found in
  74.         MVSOUND.ASM in \PAS\SUBS\MVSOUND.
  75.  
  76.         Board I/O relocation.
  77.  
  78.         The MV1010 ASIC allows the Pro Audio to be relocated
  79.         to alternate base I/O addresses. For example, the
  80.         card can be moved, from 388 to 384. This affects all
  81.         native Pro Audio addresses, such as the filter, pcm,
  82.         interrupt, fm, and MIDI addresses. Use the function,
  83.         "mvGetHWVersion" to determine the current I/O address.
  84.         For coding examples, checkout MVSOUND.ASM in the
  85.         subdirectory, \PAS\SUBS\MVSOUND. This code calls
  86.         mvGetHWVersion, then uses a special memory variable,
  87.         "_MVTranslateCode" to adjust the original address.
  88.  
  89.         Stereo 2OP FM Synthesis.
  90.  
  91.         The new OPL3 4OP FM chip does not exactly emulate
  92.         two 2OP FM chips. Two programs, PAN2OP.C and PHASE.C,
  93.         located in \PAS\SUBS\FM, show how to perform stereo
  94.         2OP on either hardware platforms.
  95.  
  96.